#define  _CRT_SECURE_NO_WARNINGS 1

//在C语言中，递归就是函数调用自身。

#include"head.h"


//最简单的递归：
//int main()
//{
//    printf("hehe\n");
//    main();
//    //死循环崩溃，栈溢出（Stack overflow）
//    return 0;
//}

//递归限制条件：
//1. 递归存在限制条件，当满足条件时，递归结束；
//2. 每次递归调用之后越来越接近这个限制条件。
//递归是使用少量的代码，完成了大量的重复计算。（递推和回归）

int main()
{
	//阶乘
	//int n = 0;
	//scanf("%d", &n);
	//printf("%d\n", factorial(n));


	//顺序打印一个整数的每一位
	//int m = 0;
	//scanf("%d", &m);
	//print_digit(m);


	//求第n个斐波那契数
	int n = 0;
    scanf("%d", &n);
    //printf("%d\n", Fib(n));
    printf("%d\n", Fib_2(n));

	return 0;
}